/*
 * @Copyright    : Blueray Med .ltd
 * @file name    : Filename
 * @Date         : 2022-10-19 16:03:50
 * @LastEditor   : Liam
 * @LastDate     : date
 * @Describe     : 不写变量地址
 */
#ifndef __BTN_HANDLER_H__
#define __BTN_HANDLER_H__
#include "sys.h"
#include "uart2.h"
#include "Protocol.h"
#include "btn_scan.h"
#include "sys_handler.h"

/************** 宏定义 ***************************************************/
#define OPEN 1
#define CLOSE 0
#define UNITS_MMHG 1
#define UNITS_KPA 0
/* 读写 */
#define NOW_PRESSURE 0x1000
#define SET_MAIN_PRESSURE 0x1001
#define SET_FLOW 0X1002
#define SET_UNITS 0x1003
#define SAVE_SEND_ADDR 0x1004
#define READY_BTN_ADDR 0x1005
#define WARNING_VALUE 0x1006
#define WARNING_SWITCH 0x1007
#define WARNING_FLAG 0x1008

#define SET_PAGE_DATA 0x1010 /* 标定界面数据 40 */

#define SET_PAGE_PRESSURE 0x1040        /* 设置调节压力 */
#define SET_PAGE_FLOW 0x1041            /* 设置调节流量 */
#define SET_PAGE_PRESSURE_SWITCH 0x1042 /* 设置调节开关 */
#define ADC_NOW 0x1043
#define SET_PAGE_SPEED 0x1044        /* 转速设置 */
#define SET_PAGE_SPEED_SWITCH 0x1045 /* 转速调节开关 */
#define SET_KP 0x1046                /* PID调节 3 */
#define SET_KI 0x1047
#define SET_KD 0x1048

/* 其它宏定义 */
#define BEEP_ADDR 0x00A0
#define BEEP_TIME_400 0x0032

#define PAGE_BTN_NUM 0X6000
#define SAVE_BTN_ADDR 0X6001
#define OPEN_ACTION 0x6003
#define TP_ADD_RETURN 0x6005
#define TP_ON 0x6006
#define TP_Continue 0x6007
#define TP_OFF 0x6008
#define TP_SUBTRACT_RETURN 0x6009

#define BC_MODE_ADDR 0x600A  /* 型号模式 */
#define LANGUAGE_MODE 0x600C /* 语言 */
#define FLOW_SET_BTN 0x6010  /* 流量设置按键 */
/* 页面枚举代替宏定义 */
typedef enum
{
    PIC_NUM_PASSWORD0 = 1,
    PIC_NUM_PASSWORD1,
    PIC_NUM_PASSWORD2,
    PIC_NUM_PASSWORD3,
    PIC_NUM_PASSWORD4,
    PIC_NUM_PASSWORD5,
    PIC_NUM_PASSWORD6,
    PIC_NUM_PASSWORD_DOWN,
    PIC_NUM_KEY9,
    PIC_NUM_KPA_MAIN,
    PIC_NUM_KPA_READY,
    PIC_NUM_HG_MAIN,
    PIC_NUM_HG_READY,
    PIC_NUM_CALIBRATE,
    PIC_NUM_OPEN_ACTION
} PageNum;

/* 函数声明 */
void page_to_page_handler_function(u16 pagenum_now_val, u16 pagenum_btn_val);
void enter_set(void);
void exit_set(void);
void enter_ready (void);
void exit_ready();
void switching_units(u16 page_num);
void set_max_flow();
void send_pressure_flow_handler(void);
void warning_handler(void);
void send_units_handler(u16 page_num);
void save_btn_handler(void);
void long_press_init(void);
void long_press_function(page_num);
void the_gui_system_init(void);
#endif
